Big M

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Big M — метод решения задач линейного программирования с использованием симплексного алгоритма. Позволяет распространить симплексный алгоритм на задачи, которые содержат ограничения «больше, чем». Такое распространение осуществляется за счёт того, что связи ассоциируются с большими по величине отрицательными постоянными, которые не были бы частью какого-либо оптимального решения, если бы оно существовало.

Алгоритм[править | править код]

Симплекс-метод является оригинальным и до сих пор одним из наиболее широко используемых методов решения задач линейной максимизации. Однако для его применения начало координат (все переменные равны 0) должно быть допустимой точкой. Это условие выполняется только тогда, когда все связи (кроме неотрицательности) меньше связей типа «меньше чем» и с положительной константой в правой части. Метод вводит избыточные и искусственные переменные для преобразования всех неравенств к этому виду; название метода обусловлено наличием большого числа искусственных переменных, обозначаемых .

Шаги в алгоритме следующие:

  • умножить выражения для связей в виде неравенства так, чтобы убедиться, что правая часть положительна;
  • если ставится задача минимизации, то её надо преобразовать в задачу максимизации за счёт умножения целевой функции на −1;
  • для любых ограничений, превышающих допустимые, введите избыточные переменные и искусственные переменные фi так, как это показано ниже[уточнить];
  • выбрать большое положительное значение и введите в целевую функцию формы соответствующее слагаемые вида , умноженного на искусственные переменные;
  • для ограничений вида «меньше или равно» вводятся переменные рассогласования si таким образом, чтобы все ограничения обратились в равенство;
  • полученная задача решается обычным симплексным методом.

Например, ограничение принимает вид , в то время как ограничение записывается как . Должно быть показано, что искусственные переменные равны 0. Функция, подлежащая максимизации, переписывается так, чтобы включить в неё сумму всех искусственных переменных. Затем применяются сокращения строк для получения окончательного решения.

Значение должно быть выбрано достаточно большим, чтобы искусственная переменная не была частью какого-либо осуществимого решения.

Для достаточно большого оптимальное решение содержит любые искусственные переменные в базисе (то есть положительные значения) тогда и только тогда, когда задача не имеет решения.

Альтернативные применения[править | править код]

При использовании в целевой функции метод Big M применяется для задач линейной оптимизации, в которых нарушения связи или нескольких связей обусловлено наличием большой положительной штрафной постоянной .

При использовании в самих связях, Big M может быть применён для обеспечения равенства переменных только тогда, когда определённая двоичная переменная принимает одно значение, но оставляет переменные «открытыми», если двоичная переменная принимает противоположное значение. Один из примеров этого заключается в следующем: для достаточно больших двоичных переменных и (0 или 1) связи:

обеспечивают тот факт, что если , то . В противном случае, когда выполняется условие если , то имеет место неравенство , указывающее на то, что переменные x и y могут иметь любые значения до тех пор, пока абсолютное значение их разности ограничено величиной (следовательно, необходимо, чтобы было «достаточно большим»).

См. также[править | править код]

Литература[править | править код]

Ссылки[править | править код]